package com.isoft.airportsystem.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;

/**
 * 统计数据转换工具
 */
public class StatsDataConverter {

    /**
     * 将Map数据转换为饼图需要的格式
     * @param rawData 原始数据 {key: count}
     * @param nameMapper 名称映射函数
     * @return 饼图数据结构 [{name: "显示名", value: 数量}]
     */
    public static List<Map<String, Object>> convertToPieData(
            Map<String, Integer> rawData,
            Function<String, String> nameMapper) {

        List<Map<String, Object>> result = new ArrayList<>();
        rawData.forEach((key, count) -> {
            if (count > 0) { // 过滤零值
                result.add(Map.of(
                        "name", nameMapper.apply(key),
                        "value", count
                ));
            }
        });
        return result;
    }
}